Trace-Driven Verification of Multithreaded Programs
نویسندگان
چکیده
We present a new method that combines the efficiency of testing with the reasoning power of satisfiability modulo theory (SMT) solvers for the verification of multithreaded programs under a user specified test vector. Our method performs dynamic executions to obtain both underand over-approximations of the program, represented as quantifier-free first order logic formulas. The formulas are then analyzed by an SMT solver which implicitly considers all possible thread interleavings. The symbolic analysis may return the following results: (1) it reports a real bug, (2) it proves that the program has no bug under the given input, or (3) it remains inconclusive because the analysis is based on abstractions. In the last case, we present a refinement procedure that uses symbolic analysis to guide further executions.
منابع مشابه
Case Studies: Memory Behavior of Multithreaded Multimedia and AI Applications
Memory performance becomes a dominant factor for today’s microprocessor applications. In this paper, we study memory reference behavior of emerging multimedia and AI applications. We compare memory performance for sequential and multithreaded versions of the applications on multithreaded processors. The methodology we used including workload selection and parallelization, benchmarking and measu...
متن کاملEffective verification of confidentiality for multi-threaded programs
This paper studies how confidentiality properties of multithreaded programs can be verified efficiently by a combination of newly developed and existing model checking algorithms. In particular, we study the verification of scheduler-specific observational determinism (SSOD), a property that characterizes secure information flow for multithreaded programs under a given scheduler. Scheduler-spec...
متن کاملVerification of Multithreaded Object-Oriented Programs with Invariants
Developing safe multithreaded software systems is difficult due to the potential unwanted interference among concurrent threads. This paper presents a sound, modular, and simple verification technique for multithreaded object-oriented programs with object invariants. Based on a recent methodology for object invariants in single-threaded programs, this new verification technique enables leak-pro...
متن کاملVerifying ANSI-C Context-Aware Applications Draft
We report on work in progress upon the verification of contextaware applications written in C-based languages. We recognize that context-aware programs are generally either middleware-based and multithreaded, or driven by asynchronous events, and focus on identifying the program points in which the contextual updates impact the application behaviour. Inheriting from related work on the validati...
متن کاملPermission Specifications for Common Multithreaded Programming Patterns
Multithreading is the next challenge for program verification. To support modular verification of multithreaded programs, one should know when data might be accessed or updated by the different threads in the system. We propose a permission-based annotation system that is designed to do exactly this, i.e. it specifies when a thread can read or write a variable. The annotation system ensures tha...
متن کامل